<?php

// If you want to ignore the uploaded files, 
// set $demo_mode to true;
include("Model/Photo.php");
include("Configuration.php");
include("Database.php");
include("DataTable.php");
include("QueryResult.php");
include("Model/User.php");
$demo_mode = false;
$upload_dir = 'Images/Upload/';
$allowed_ext = array('jpg','jpeg','png','gif');

if(strtolower($_SERVER['REQUEST_METHOD']) != 'post'){
	exit_status('Error! Wrong HTTP method!');
}

if(array_key_exists('pic',$_FILES) && $_FILES['pic']['error'] == 0 ){
	$pic = $_FILES['pic'];
	if(!in_array(get_extension($pic['name']),$allowed_ext)){
		exit_status('Only '.implode(',',$allowed_ext).' files are allowed!');
	}	
	if($demo_mode){
            // File uploads are ignored. We only log them.
            $line = implode('		', array( date('r'), $_SERVER['REMOTE_ADDR'], $pic['size'], $pic['name']));
            file_put_contents('log.txt', $line.PHP_EOL, FILE_APPEND);
            exit_status('Uploads are ignored in demo mode.');
	}
	
	// Move the uploaded file from the temporary 
	// directory to the uploads folder:
        $year = $upload_dir.date("Y");
        $month = $year."/".date("m");
        $day =  $month."/".date("d")."/";

        if(!is_dir($year)){
            mkdir($year);
        }
        if(!is_dir($month)){
            mkdir($month);
        }
        if(!is_dir($day)){
            mkdir($day);
        }
        
        $photoid = Database::getID("photos", "id");
        
	if(!file_exists($day.$photoid."_".$pic['name'])){
            move_uploaded_file($pic['tmp_name'], $day.$photoid."_".$pic['name']);
        }
        $url = $day.$photoid."_".$pic['name'];
	exit_status("Url:".$url);
}

exit_status('Something went wrong with your upload!');


// Helper functions

function exit_status($str){
	echo json_encode(array('status'=>$str));
	exit;
}

function get_extension($file_name){
	$ext = explode('.', $file_name);
	$ext = array_pop($ext);
	return strtolower($ext);
}
?>